1. Field of the Invention
The present invention relates generally to digital media and, more specifically, to encoding video streams for adaptive video streaming.
2. Description of the Related Art
Conventional digital content distribution systems usually include a content server, a content player, and a communications network connecting the content server to the content player. The content server is configured to store digital content files corresponding to different content titles that can be downloaded from the content server to the content player. Each digital content file typically includes a video stream encoded to a particular playback bit rate as well as an audio stream. As is well-understood, a video stream encoded to a high playback bit rate is larger in size than a video stream encoded to a lower playback bit rate.
The content player is configured to download and play a digital content file corresponding to a specific content title in response to a user selecting the content title for playback. Downloading the digital content file typically involves a technique known in the art as “streaming,” whereby the content server sequentially transmits the digital content file corresponding to the selected content title to the content player. The content player then plays the video stream and the audio stream included in the digital content file as portions of those streams become available. Prior to initiating the download of the digital content file, the content player may measure available bandwidth from the content server and select a digital content file having a video stream encoded to a bit rate that can be supported by the measured available bandwidth. To the extent the communications network can provide adequate bandwidth to download the selected digital content file, while satisfying bit rate requirements, playback of the downloaded digital content file proceeds satisfactorily.
In practice, however, available bandwidth in the communications network constantly changes as different devices connected to the communications network perform independent tasks. To maximize playback quality in the face of changing bandwidth availability, an adaptive streaming technique may be implemented. In adaptive streaming, if the available bandwidth in the communications network increases, then the content player downloads a different content file corresponding to the selected content title that includes a video stream encoded to a higher playback bit rate. Similarly, if the available bandwidth in the communications network decreases, then the content player may download a different content file corresponding to the selected content title that includes a video stream encoded to a lower playback bit rate.
When switching from downloading a current video stream to downloading a new video stream, the content player needs to match the video frame in the new video stream corresponding to the video frame in the current video stream being played at the time of the switch. To match video frames, the content player typically sequentially searches the new video stream to locate the video frame that matches the relevant video frame in the current video stream. One drawback to this approach is that the searching operation may be very time consuming, thereby causing an interruption in downloading the video stream that disrupts the viewing experience for the user.
As the foregoing illustrates, what is needed in the art is a video stream encoding mechanism that allows for switching between video streams that reduces the incidence of playback interruption relative to prior art techniques.